38 research outputs found

    Three Partition Refinement Algorithms

    Get PDF
    We present improved partition refinement algorithms for three problems: lexicographic sorting, relational coarsest partition, and double lexical ordering. Our double lexical ordering algorithm uses a new, efficient method for unmerging two sorted sets

    Incremental Cycle Detection, Topological Ordering, and Strong Component Maintenance

    Full text link
    We present two on-line algorithms for maintaining a topological order of a directed nn-vertex acyclic graph as arcs are added, and detecting a cycle when one is created. Our first algorithm handles mm arc additions in O(m3/2)O(m^{3/2}) time. For sparse graphs (m/n=O(1)m/n = O(1)), this bound improves the best previous bound by a logarithmic factor, and is tight to within a constant factor among algorithms satisfying a natural {\em locality} property. Our second algorithm handles an arbitrary sequence of arc additions in O(n5/2)O(n^{5/2}) time. For sufficiently dense graphs, this bound improves the best previous bound by a polynomial factor. Our bound may be far from tight: we show that the algorithm can take Ω(n222lgn)\Omega(n^2 2^{\sqrt{2\lg n}}) time by relating its performance to a generalization of the kk-levels problem of combinatorial geometry. A completely different algorithm running in Θ(n2logn)\Theta(n^2 \log n) time was given recently by Bender, Fineman, and Gilbert. We extend both of our algorithms to the maintenance of strong components, without affecting the asymptotic time bounds.Comment: 31 page

    A simple and optimal ancestry labeling scheme for trees

    Full text link
    We present a lgn+2lglgn+3\lg n + 2 \lg \lg n+3 ancestry labeling scheme for trees. The problem was first presented by Kannan et al. [STOC 88'] along with a simple 2lgn2 \lg n solution. Motivated by applications to XML files, the label size was improved incrementally over the course of more than 20 years by a series of papers. The last, due to Fraigniaud and Korman [STOC 10'], presented an asymptotically optimal lgn+4lglgn+O(1)\lg n + 4 \lg \lg n+O(1) labeling scheme using non-trivial tree-decomposition techniques. By providing a framework generalizing interval based labeling schemes, we obtain a simple, yet asymptotically optimal solution to the problem. Furthermore, our labeling scheme is attained by a small modification of the original 2lgn2 \lg n solution.Comment: 12 pages, 1 figure. To appear at ICALP'1

    Distributed Branching Bisimulation Minimization by Inductive Signatures

    Get PDF
    We present a new distributed algorithm for state space minimization modulo branching bisimulation. Like its predecessor it uses signatures for refinement, but the refinement process and the signatures have been optimized to exploit the fact that the input graph contains no tau-loops. The optimization in the refinement process is meant to reduce both the number of iterations needed and the memory requirements. In the former case we cannot prove that there is an improvement, but our experiments show that in many cases the number of iterations is smaller. In the latter case, we can prove that the worst case memory use of the new algorithm is linear in the size of the state space, whereas the old algorithm has a quadratic upper bound. The paper includes a proof of correctness of the new algorithm and the results of a number of experiments that compare the performance of the old and the new algorithms

    Handling Conflicts in Depth-First Search for LTL Tableau to Debug Compliance Based Languages

    Full text link
    Providing adequate tools to tackle the problem of inconsistent compliance rules is a critical research topic. This problem is of paramount importance to achieve automatic support for early declarative design and to support evolution of rules in contract-based or service-based systems. In this paper we investigate the problem of extracting temporal unsatisfiable cores in order to detect the inconsistent part of a specification. We extend conflict-driven SAT-solver to provide a new conflict-driven depth-first-search solver for temporal logic. We use this solver to compute LTL unsatisfiable cores without re-exploring the history of the solver.Comment: In Proceedings FLACOS 2011, arXiv:1109.239

    On the Efficiency of a Good but Not Linear Set Union Algorithm

    Full text link
    Consider two types of instructions for manipulating disjoint sets. FIND(x) computes the name of the (unique) set containing element x. UNION(A,B,C) combines sets A and B into a new set named C. We examinee a known algorithm for implementing sequences of these instructions. We show that if f(n) is the maximum time required by any sequence of n instructions, k1nα(n)f(n)k2nlog(n)k_{1} n \alpha (n) \leq f(n) \leq k_{2} n \log^{*}(n) for some constants k1k_{1} and k2k_{2}, where log(n)=min{ilogi(n)1}\log^{*}(n) = \min\{i|\log^{i}(n) \leq 1\} and α(n)\alpha(n) is a recursively defined function which satisfies α(n)\alpha(n) \rightarrow \infty as nn \rightarrow \infty. Thus the set union algorithm is O(nlog(n))O(n \log^{*}(n)) but not O(n)O(n). Keywords and phrases: algorithm, complexity, equivalence, partition, set union, tree

    Enumeration of the Elementary Circuits of a Directed Graph

    Full text link
    An algorithm to enumerate all the elementary circuits of a directed graph is presented. The algorithm uses back-tracking with lookahead to avoid unnecessary work, and it has a time bound of O((V+E)(C+1))O ((V+E)(C+1)) when applied to a graph with VV vertices, EE edges, and CC elementary circuits. Keywords: Algorithm, circuit, cycle, grap

    Testing Flow Graph Reducibility

    Get PDF
    Many problems in program optimizationn have been solved by applying a technique called interval analysis to the flow graph of the program. A flow graph which is susceptible to this type of analysis is called reducible. This paper describes an algorithm for testing whether a flow graph is reducible. The algorithm uses depth-first search to reveal the structure of the flow graph and a good method for computing disjoint set unions to determine reducibility from the search information. When the algorithm is implemented on a random access computer, it requires O(ElogE)O(E \log^{*} E) time to analyze a graph with E edges, where logx=min{ilogix1}log^{*} x=\min\{i|\log^{i}x \leq 1\}. The time bound compares favorably with the O(ElogE)O(E \log E) bound of a previously known algorithm

    Finding a Maximum Clique

    Full text link
    An algorithm for finding a maximum clique in an arbitrary graph is described. The algorithm has a worst-case time bound of k(1.286)nk(1.286)^{n} for some constant kk, where nn is the number of vertices in the graph. Within a fixed time, the algorithm can analyze a graph with 2 3/4 as many vertices as the largest graph which the obvious algorithm (examining all subsets of vertices) can analyze. Keywords: Algorithm, Clique, Graph, Independent Set
    corecore